#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    umask(0);//就近原则，会使用这里的掩码，不影响系统，但影响进程

    //以写方式打开文件，错误返回-1
    //文件描述符fd
    int fd = open("log.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
    if(fd < 0 )
    {
        printf("open file err\n");
        return 1;
    }
    printf("%d\n",fd); 
    //向文件描述符中写入内容
    const char* message = "writting";
    write(fd,message,strlen(message));//不需要+1

    close(fd);
    return 0;
}

//#define ONE (1<<0)
//#define TOW (1<<1)
//#define THREE (1<<2)
//#define FOUR (1<<3)
//
//
//void show(int flags)
//{//方法接口
//    if(flags&ONE) printf("fun1\n");
//    if(flags&TOW) printf("fun2\n");
//    if(flags&THREE) printf("fun3\n");
//    if(flags&FOUR) printf("fun4\n");
//}
//int main()
//{
//    show(ONE|TOW|FOUR);
//    return 0;
//}
//
////int main()
//{
//    //默认在当前路径下创建
//    //
//    printf("PID: %d\n",getpid());
//    //FILE* pf = fopen("log.txt","w");
//    FILE* pf = fopen("log.txt","a");
//    if(pf == NULL)
//    {
//        perror("fopen err\n");
//        return 1;
//    }
//
//    const char* message = "qwer asdf zxcv";
//
//    //这里的strlen要不要 + 1？
//    fwrite(message,strlen(message),1,pf);
//
//
//    fclose(pf);
//
////    sleep(1000);
//    return 0;
//}
